package sixth.对象转型;

class A1 {
    public void fun1() {
        System.out.println("A---fun1()");
    }

    public void fun2() {
        System.out.println("A---fun2()");
    }
}

class B1 extends A1 {
    public void fun1() {
        System.out.println("B---fun1()");
    }

    public void fun3() {
        System.out.println("B---fun3()");
    }
}

class C1 extends A1 {
    public void fun1() {
        System.out.println("C---fun1()");
    }

    public void fun4() {
        System.out.println("C---fun4()");
    }
}

public class 不使用对象多态性实现功能 {
    public static void main(String[] args) {
        fun(new B1());
        fun(new C1());
    }

    public static void fun(B1 b) {// 接受子类B的实例
        b.fun1();
    }

    public static void fun(C1 c) {// 接受子类C的实例
        c.fun1();
    }
}
/**
 * 以上程序缺点就是：每当产生一个A类的子类  fun()方法就要重载一次，这样则每一次扩充子类都必须类本身
 * 那么现在使用对象多态性完成呢？
 */